/*************************************************************************
 * 作者：		StarAire
 * ESP_IDF版本：V5.0.8
 * 例程说明简介：	
				串口调试输出测试，打印芯片的一些信息
注意！！！！！！！
	请修改工程目录中的.vscode/c_cpp_properties.json中的库路径，更改为自己电脑的IDF库路径
	请修改工程目录中的main/CMakeLists.txt中的包含库路径（如果有），更改为自己电脑的IDF库路径
**************************************************************************/

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_chip_info.h"
#include "esp_flash.h"
#include "esp_mac.h"
#include "sdkconfig.h"



#include "./EPD/epd.h"
#include "./EPD/epd_pic.h"
#include "./MultiButton/multi_button.h"
#include "./Button/bsp_button.h"
#include "./EPD/GUI/GUI_Paint.h"
#include "./PageManager/page_manager.h"
 

uint8_t button1_sc_flag = 0;
uint8_t button2_sc_flag = 0;
uint8_t button3_sc_flag = 0;
uint8_t button1_lp_flag = 0;


#define EVENT_BUTTON1_SC 0x01
#define EVENT_BUTTON2_SC 0x02
#define EVENT_BUTTON3_SC 0x03
#define EVENT_BUTTON1_LP 0x04


void event_process(void)
{
	if(button1_sc_flag)
	{
		button1_sc_flag = 0;
		page_manager_event_transmit(EVENT_BUTTON1_SC);
		printf("current page: %d\n", current_page);
	}
	if(button2_sc_flag)
	{
		button2_sc_flag = 0;
		page_manager_event_transmit(EVENT_BUTTON2_SC);
	}
	if(button3_sc_flag)
	{
		button3_sc_flag = 0;
		page_manager_event_transmit(EVENT_BUTTON3_SC);
	}
	if(button1_lp_flag)
	{
		button1_lp_flag = 0;
		page_manager_event_transmit(EVENT_BUTTON1_LP);
	}
}

void main_task(void *arg)
{
	while(1)
	{
		page_manager_run();
		event_process();

		vTaskDelay(1 / portTICK_PERIOD_MS);
	}
}


void app_main()
{    
	bsp_epd_init();
	bsp_button_init();

	epd_1gray_init();
	epd_1gray_clear(0);
    EPD_Paint_Init();
	page_manager_init();

	xTaskCreate(main_task, "main_task", 4096, NULL, 5, NULL); // 优先级设为5
	vTaskDelay(1000 / portTICK_PERIOD_MS); // 延时1秒
	vTaskDelete(NULL); // 删除当前任务

}

